
    import java.util.Arrays;

    public class Test2 {
        // 核心方法：计算最多可存储的程序数量
        public static int maxProgramCount(int[] programLengths, int tapeLength) {
            // 1. 按程序长度从小到大排序（贪心核心：优先选短程序）
            Arrays.sort(programLengths);

            int count = 0; // 存储的程序数量
            int currentTotal = 0; // 当前累计长度

            // 2. 依次累加，判断是否超过磁带长度
            for (int len : programLengths) {
                if (currentTotal + len <= tapeLength) {
                    currentTotal += len;
                    count++;
                } else {
                    break; // 剩余长度不够，退出循环
                }
            }
            return count; // 返回最大程序数量
        }

        // （主方法用于测试，此处省略输入输出逻辑）
        public static void main(String[] args) {
            int[] lengths = {3, 1, 4, 2, 5}; // 程序长度数组
            int tapeLen = 8; // 磁带总长度
            System.out.println("最多可存储程序数：" + maxProgramCount(lengths, tapeLen));
        }
    }

